/*
 * File:    Publishable.java
 * Created: 25-Jun-2007
 * Version: $Id$
 * 
 * COPYRIGHT (C) 2007, Bitgate Software, LLC.  All Rights Reserved.
 * 
 * software@bitgatesoftware.com
 */

package com.bitgate.util.soap;

import java.lang.annotation.*;

/**
 * Indicates that the SOAP method that uses this annotation is an object that is accessible via a SOAP query.  Note, that any
 * classes that use the SOAP annotation must also include this annotation to publish objects as web objects.
 * <p/>
 * The correct usage for this annotation is as follows:
 * <p/>
 * <code>    @Publishable public String getTime(TimeZone tZone);</code><br/>
 * ... which will theoretically return the local time in the given timezone.
 * <p/>
 * ... or ...
 * <p/>
 * <code>    @Publishable public void setConnectionId(String id);</code><br/>
 * ... which sets an internal ID but never returns a result.
 * 
 * @author khollis
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Publishable
{
	/**
	 * This is the documentation for the overall class structure.
	 * 
	 * @return <code>String</code> containing the documentation, &quot;No documentation provided.&quot; is the default.
	 */
	String documentation() default "No documentation provided.";
}